import uuid
import random

def generate_android_id(seed=None):
    """
    生成模拟的Android ID
    
    Android ID通常是一个16个字符的十六进制字符串，
    在Android设备首次启动时生成，并在设备恢复出厂设置前保持不变。
    
    Args:
        seed: 可选的种子值，用于生成确定性的Android ID
        
    Returns:
        str: 生成的Android ID，16个字符的十六进制字符串
    """
    if seed is not None:
        # 使用种子生成确定性的Android ID
        random.seed(seed)
        # 生成8个字节的随机数据
        random_bytes = bytearray(random.getrandbits(8) for _ in range(8))
    else:
        # 使用UUID生成随机的Android ID
        # 取UUID的前8个字节
        random_bytes = uuid.uuid4().bytes[:8]
    
    # 转换为16个字符的十六进制字符串
    android_id = ''.join(f'{b:02x}' for b in random_bytes)
    
    # 验证长度
    assert len(android_id) == 16, f"生成的Android ID长度不正确: {len(android_id)}"
    
    return android_id
